CMAKE_MINIMUM_REQUIRED(VERSION 3.0)

PROJECT(RtpSound)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)

option(NOCRT "link crt static" OFF)


if (MSVC)
    #warning 4251
    SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /wd4819 /wd4996 ")
    SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /wd4819 /wd4996 ")
	
	if (NOCRT)
		set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DWIN32 /MTd")
		set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /DWIN32 /MT")
	endif()
	
	set(CMAKE_SHARED_LINKER_FLAGS_DEBUG   "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /SAFESEH:NO")
	set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /OPT:NOREF /OPT:ICF /SAFESEH:NO")
	
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin)
    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/lib)
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/lib)

    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin)
    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/lib)
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/lib)
else()
	#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
	#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated")
	SET(CMAKE_INSTALL_RPATH "lib")
	set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()


set(PROJECT_ROOT ${PROJECT_SOURCE_DIR})
set(COMN_DIR ${PROJECT_ROOT}/comn)
set(THIRD_PARTY ${PROJECT_ROOT}/third_party)


if (WIN32)
    set(LIB_PLATFORM ws2_32 )
else()
	if (APPLE)
		set(LIB_PLATFORM pthread)
	else()
    	set(LIB_PLATFORM pthread rt)
	endif()
endif()

include(cmake/sdl.cmake)

ADD_SUBDIRECTORY(comn)
#ADD_SUBDIRECTORY(http)
ADD_SUBDIRECTORY(third_party)

ADD_SUBDIRECTORY(RtpSound)
ADD_SUBDIRECTORY(DemoRtpSound)
